package com.veetao.api.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 指定当前方法为Mcp的方法，通过name指定方法的。
 * 
 * @author Marshal(imdeep@gmail.com) Initial Created at 2013-10-31
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface McpMethod {

	/**
	 * 方法名
	 * 
	 * @return
	 */
	String name();

	/**
	 * 开始支持的版本
	 * 
	 * @return
	 */
	String ver();

	/**
	 * 接口的描述
	 * 
	 * @return
	 */
	String desc();

	/**
	 * 是否需要登录
	 * 
	 * @return true:必须登录才能访问此接口。false：对是否登录无要求。
	 */
	boolean logon() default true;

	/**
	 * 可能出现的非零错误码
	 * 
	 * @return
	 */
	int[] nzcode() default {};

	/**
	 * 缓存结果；仅当对象中所有结点值都不变时才能用。
	 * 
	 * 注意：不明群众请不要使用此选项。调用前请跟我确认Marshall
	 * 
	 * @return
	 */
	boolean cacheResult() default false;

	/**
	 * 是否加载deviceId对应的AppInit数据
	 * 
	 * @return
	 */
	boolean loadAppInitData() default false;
	
	
	Class<?>[] respClass() default {Void.class};


	/**
	 * @return
	 * @author guohongtao
	 */
	boolean checkSig() default true;
}
